﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>                            //两种方法答题思路差不多，都是三个循环，第一种方法对c的代码运用不灵活
#include <string.h>                         //第一种比较实在、暴力的做法
                                            //用到的有用的思想不多，最想吐槽的是情况多的时候后用if else if不如switch，
                                            //用switch不如用二维数组（特殊情况下），因为二维数组可以用下标记录
                                            //这道题你用switch爽不死你。
                                            //※最后做题思路总结：当思路感觉没问题的时候，看看是不是输出的内容写错了
int main()
{
    char ar[4][80] = { 0 };                 //用二维数组储存输入
    for (int i = 0; i < 4; i++) {
        scanf("%s", ar[i]);                //这里回顾一下知识点，scanf是直接把整个输入的值都赋值给了ar[]，此时ar[i]大小不再是80
    }
    int i = 0;
    for (; i < strlen(ar[0]) && i < strlen(ar[1]); i++) {
        if (ar[0][i] == ar[1][i] && ar[0][i] != '\0') {    //比较字符可以直接比较，因为字符是特别的整型，而字符串不行
                                                //你个憨逼，会不会细心一点注意你拼错了没有？
            switch (ar[0][i]) {                           
            case 'A':
                printf("MON ");
                break;
            case 'B':
                printf("TUE ");
                break;
            case 'C':
                printf("WED ");
                break;
            case 'D':
                printf("THU ");
                break;
            case 'E':
                printf("FRI ");
                break;
            case 'F':
                printf("SAT ");
                break;
            case 'G':
                printf("SUN ");
                break;
            default:
                goto flag;
                break;
            }
            break;
        }
    flag:
        ;          //思维缜密，想的细致一点

    }
    int j = i + 1;   //break之后直接跳出循环，不再进行i++操作；
    for (; j < strlen(ar[0]) && j < strlen(ar[1]); j++) {
        if (ar[0][j] == ar[1][j] && ar[0][j] != '\0') {
            switch (ar[0][j]) {           
            case '0':                   
                printf("00:");
                break;
            case '1':
                printf("01:");
                break;
            case '2':
                printf("02:");
                break;
            case '3':
                printf("03:");
                break;
            case '4':
                printf("04:");
                break;
            case '5':
                printf("05:");
                break;
            case '6':
                printf("06:");
                break;
            case '7':
                printf("07:");
                break;
            case '8':
                printf("08:");
                break;
            case '9':
                printf("09:");
                break;
            case 'A':
                printf("10:");
                break;
            case 'B':
                printf("11:");
                break;
            case 'C':
                printf("12:");
                break;
            case 'D':
                printf("13:");
                break;
            case 'E':
                printf("14:");
                break;
            case 'F':
                printf("15:");
                break;
            case 'G':
                printf("16:");
                break;
            case 'H':
                printf("17:");
                break;
            case 'I':
                printf("18:");
                break;
            case 'J':
                printf("19:");
                break;
            case 'K':
                printf("20:");
                break;
            case 'L':
                printf("21:");
                break;
            case 'M':
                printf("22:");
                break;
            case 'N':
                printf("23:");
                break;
            default:
                goto flag1;
            }
            break;
        }
    flag1:
        ;
    }
    for (int k = 0; k < strlen(ar[2]) && k < strlen(ar[3]); k++) {        //⬇把数组的字符控制在字母范围之中
        if (ar[2][k] == ar[3][k] && ar[2][k] != '\0' && ((ar[2][k] >= 'A' && ar[2][k] <= 'Z') || (ar[2][k] >= 'a' && ar[2][k] <= 'z'))) {
            int t = k;
            if (t >= 0 && t < 10) {
                switch (t) {
                case 0:
                    printf("00");
                    break;
                case 1:
                    printf("01");
                    break;
                case 2:
                    printf("02");
                    break;
                case 3:
                    printf("03");
                    break;
                case 4:
                    printf("04");
                    break;
                case 5:
                    printf("05");
                    break;
                case 6:
                    printf("06");
                    break;
                case 7:
                    printf("07");
                    break;
                case 8:
                    printf("08");
                    break;
                case 9:
                    printf("09");
                    break;
                default:
                    break;
                }
            }
            else if (t < 60) {
                printf("%d", t);
            }
            break;
        }
    }
    return 0;
}


  //第二种大佬解法
/*
#include <stdio.h>
#include <string.h>
int main(){
    int i,flag=0;
    char week[7][4]={"MON","TUE","WED","THU","FRI","SAT","SUN"};  //♥用二维数组的下标对应星期，省去了switch的复杂
    char s1[60],s2[60],s3[60],s4[60];
    scanf("%s",s1);                        //♥这里觉得可以用上面我的想法
    scanf("%s",s2);
    scanf("%s",s3);
    scanf("%s",s4);
    for(i=0;(s1[i]!='\0')&&(s2[i]!='\0');i++){	//比较前两行
        if(s1[i]==s2[i]){
            if(flag==0&&s1[i]>='A'&&s1[i]<='G'){	//判断星期几
                printf("%s",week[s1[i]-'A']);   //♥用差值对应二维数组的下标，下次你注意，听见没有
                flag=1;                        //♥用标记flag来接着判断，你用的是什么，两次可以说是一模一样的for循环？
                continue;
            }
            if(flag==1){
                if(s1[i]>='0'&&s1[i]<='9'){		//判断小时数 0点到9点
                    printf(" 0%c",s1[i]);    //♥用0%c来补0，你完全可以不用switch
                    break;
                }
                if(s1[i]>='A'&&s1[i]<='N'){		//10点到23点
                    printf(" %d",s1[i]-'A'+10);
                    break;
                }
            }
        }
    }
    for(i=0;(s3[i]!='\0')&&(s4[i]!='\0');i++){	//比较后两行
        if(s3[i]==s4[i]&&s3[i]>='A'&&s3[i]<='z'){	//判断分钟数
            printf(":%02d",i);                      
            break;
        }
    }
    return 0;
}

*/